package top.withwings.bonus;

import java.util.*;

public class RandomUtils {
    public static Date random(Date lower, Date upper){
        long from=lower.getTime();
        long to=upper.getTime();
        long result = from + (long)(Math.random() * (to - from));
        return  new Date(result);
    }
    public static int random(int lower,int upper){
        int rand=(int)(Math.random()*(upper-lower))+lower;
        return rand;
    }

    public static int random(int max){
        return random(0,max);
    }
    public static double random(double lower,double upper){
        double rand=Math.random()*(upper-lower)+lower;
        return rand;
    }
    public static  <T> T random(T...arr){
        return random(Arrays.asList(arr));
    }
    public static <T> T  random(Collection<T> collection){
        List<T> list=new ArrayList<>();
        list.addAll(collection);
        int rand=(int)(Math.random()*(collection.size()));
        return list.get(rand);
    }

    public static String randomName(){
        String surname[]={"赵", "钱", "孙", "李", "周", "吴", "郑", "王", "冯", "陈", "褚", "卫", "蒋", "沈", "韩", "杨", "朱", "秦", "尤", "许",
                "何", "吕", "施", "张", "孔", "曹", "严", "华", "金", "魏", "陶", "姜", "戚", "谢", "邹", "喻", "柏", "水", "窦", "章", "云", "苏", "潘", "葛", "奚", "范", "彭", "郎",
                "鲁", "韦", "昌", "马", "苗", "凤", "花", "方", "俞", "任", "袁", "柳", "酆", "鲍", "史", "唐", "费", "廉", "岑", "薛", "雷", "贺", "倪", "汤", "滕", "殷",
                "罗", "毕", "郝", "邬", "安", "常", "乐", "于", "时", "傅", "皮", "卞", "齐", "康", "伍", "余", "元", "卜", "顾", "孟", "平", "黄", "和",
                "穆", "萧", "尹", "姚", "邵", "湛", "汪", "祁", "毛", "禹", "狄", "米", "贝", "明", "臧", "计", "伏", "成", "戴", "谈", "宋", "茅", "庞", "熊", "纪", "舒",
                "屈", "项", "祝", "董", "梁", "杜", "阮", "蓝", "闵", "席", "季"};
        String aftername[]={"鑫","寒","斌","爽","心","静", "丽", "静", "丽", "强", "静", "敏", "磊", "军", "洋", "勇", "艳", "杰", "磊", "强", "军", "杰", "娟", "艳", "涛", "明", "艳", "超", "勇", "娟", "杰", "秀", "霞", "敏", "军","丽", "强", "平", "刚", "杰", "桂", "芳"
        , "宾白","宾鸿","宾实","彬彬","彬炳",
                "彬郁","斌斌","斌蔚","滨海","波光",
                "波鸿","波峻","波涛","博瀚","博超",
                "博达","安邦","安福","安歌","安国",
                "安和","安康","才捷","才良","才艺",
                "才英","才哲","才俊","成和","成弘"};
        return random(surname)+random(aftername);
    }
    public static String randomText(){
        return randomText( random(0,20));
    }
    public static String randomText(int time){
        String text[]={"我","你","他","炸","了","有","和","吃","都","在","炸","及","问","有","方","哦","的","额","去","还","将","到","过","后","如","票","过","日","好","跑","家","等","怕",
        "时","来","用","们","生","到","作","地","于","出","就","分","对","成","会","可","主","发","年","动",
        "同","工","也","能","下","过","子","说","产","种","面","而","方","后","多","定","行","学","法","所",
        "民","得","经","十","三","之","进","着","等","部","度","家","电","力","里","如","水","化","高","自",
        "二","理","起","小","物","现","实","加","量","都","两","体","制","机","当","使","点","从","业","本",
        "去","把","性","好","应","开","它","合","还","因","由","其","些","然","前","外","天","政","四","日",
        "那","社","义","事","平","形","相","全","表","间","样","与","关","各","重","新","线","内","数","正",
        "心","反","你","明","看","原","又","么","利","比","或","但","质","气","第","向","道","命","此","变",
        "条","只","没","结","解","问","意","建","月","公","无","系","军","很","情","者","最","立","代","想",
        "已","通","并","提","直","题","党","程","展","五","果","料","象","员","革","位","入","常","文","总",
        "次","品","式","活","设","及","管","特","件","长","求","老","头","基","资","边","流","路","级","少",
        "图","山","统","接","知","较","将","组","见","计","别","她","手","角","期","根","论","运","农","指",
        "几","九","区","强","放","决","西","被","干","做","必","战","先","回","则","任","取","据","处","队",
        "南","给","色","光","门","即","保","治","北","造","百","规","热","领","七","海","口","东","导","器",
        "压","志","世","金","增","争","济","阶","油","思","术","极","交","受","联","什","认","六","共","权",
        "收","证","改","清","己","美","再","采","转","更","单","风","切","打","白","教","速","花","带","安",
        "场","身","车","例","真","务","具","万","每","目","至","达","走","积","示","议","声","报","斗","完",
        "类","八","离","华","名","确","才","科","张","信","马","节","话","米","整","空","元","况","今","集",
        "温","传","土","许","步","群","广","石","记","需","段","研","界","拉","林","律","叫","且","究","观",
        "越","织","装","影","算","低","持","音","众","书","布","复","容","儿","须","际","商","非","验","连",
        "断","深","难","近","矿","千","周","委","素","技","备","半","办","青","省","列","习","响","约","支",
        "般","史","感","劳","便","团","往","酸","历","市","克","何","除","消","构","府","称","太","准","精",
        "值","号","率","族","维","划","选","标","写","存","候","毛","亲","快","效","斯","院","查","江","型",
        "眼","王","按","格","养","易","置","派","层","片","始","却","专","状","育","厂","京","识","适","属",
        "圆","包","火","住","调","满","县","局","照","参","红","细","引","听","该","铁","价","严","龙","飞"};

        String end="";
        for (int i=0;i<time;i++){
            end+=random(text);
        }
        return end;
    }


    public static boolean randomBoolean(int percentage){

        int randomInt = random(1,101);
        return randomInt <= percentage;


    }
}